package com.hjxr.quota.datasource.domain;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;

/**
 * 维度数据实体类(quota_dimension)
 * @author sun
 * @version v1.0
 * @since 2020-08-16
 */
@Data
@ApiModel
@TableName("quota_dimension")
@KeySequence(value = "seq_quota_dimension", clazz = Integer.class)
public class Dimension extends Model<Dimension> {

    /**
     * 自增主键
     */
    @TableId(value = "id", type = IdType.INPUT)
    @ApiModelProperty(value = "自增主键")
    private Integer id;

    /**
     * 维度名称
     */
    @ApiModelProperty(value = "维度名称")
    private String dimensionName;

    /**
     * 维度编码
     */
    @ApiModelProperty(value = "维度编码")
    private String dimensionCode;


    /**
     * 上级维度ID
     */
    @ApiModelProperty(value = "上级维度ID")
    private Integer dimensionId;

    /**
     * 维度类型：1,公用;2,私有;
     */
    @ApiModelProperty(value = "维度类型：1公用 2私有")
    private String dimensionType;

    /**
     * 维度属性：1,动态;2.静态
     */
    @ApiModelProperty(value = "维度属性：1动态 2静态")
    private String dimensionAttr;

    /**
     * 状态：0删除 1启用 2禁用
     */
    @TableLogic
    @ApiModelProperty(value = "状态：0删除 1启用 2禁用")
    private String status;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人", hidden = true)
    private String createBy;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JSONField(format = "yyyy/MM/dd")
    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createDate;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新人", hidden = true)
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JSONField(format = "yyyy/MM/dd")
    @ApiModelProperty(value = "更新时间", hidden = true)
    private Date updateDate;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注", hidden = true)
    private String comments;
}
